package it.crosato.stage.server.model.retriever;

import it.crosato.stage.shared.objects.EntityDefinition;

import java.util.Vector;

import keggapi.Definition;

public class Utilities {

	/**
	 * Converte un array di elementi del tipo Definition di KEGG in un vector di
	 * elementi di tipo EntityDefinition definito da CoMeta
	 * @param definition array da convertire
	 * @return il risultato della conversione
	 */
	public static Vector<EntityDefinition> convertInED(Definition[] definition) {
		Vector<EntityDefinition> entityDefinitions = new Vector<EntityDefinition>();
		for (int i = 0; i < definition.length; i++) {
			String id = definition[i].getEntry_id();
			String description = definition[i].getDefinition();
			entityDefinitions.add(new EntityDefinition(id, description));
		}
		return entityDefinitions;
	}
	
	/**
	 * ordina alfabeticamente rispetto alla descrizione un vettore di definizioni.
	 * @param definitions il vettore delle difinizioni ordinato.
	 */
	public static void sortDefinitionsByDescription(Vector<EntityDefinition> definitions) {
		boolean exchange = true;
		while (exchange) {
			exchange = false;
			for (int i = 0; i < definitions.size() - 1; i++) {
				if (definitions.get(i).getDescription().compareTo(definitions.get(i+1).getDescription()) > 0) {
					EntityDefinition temp = definitions.get(i);
					definitions.set(i,definitions.get(i+1));
					definitions.set(i+1,temp);
					exchange = true;
				}
			}
		}
	}
}
